"""
数据迁移
    flask-migrate组件 为flask-sqlalchemy提供了数据迁移功能, 以便进行数据库升级, 如增加字段、修改字段类型等
    安装组件: pip install flask-migrate
"""
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate

app = Flask(__name__)

# 相关配置
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:mysql@127.0.0.1:3306/test32'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

# SQlalchemy组件初始化
db = SQLAlchemy(app)

# 迁移组件初始化
Migrate(app, db)


# 构建模型类
class User(db.Model):
    __tablename__ = 't_user'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column('username', db.String(20), unique=True)
    age = db.Column(db.Integer, default=10, index=True)


@app.route('/')
def index():
    return "数据迁移"


if __name__ == '__main__':
    app.run(debug=True)


"""
执行迁移命令:
    export FLASK_APP=hm_数据迁移.py  # 设置环境变量指定启动文件
    flask db init  # 生成迁移文件夹
    flask db migrate  # ⽣成迁移版本, 保存到迁移文件夹中
    flask db upgrade  # 执行迁移
    
注意点:
    执行迁移命令前需要先设置环境变量指定启动文件
"""
